﻿using System.Text;
using Styx.Helpers;
using System.IO;
using Styx;
using Styx.Common;
using System.ComponentModel;
using DefaultValue = Styx.Helpers.DefaultValueAttribute;
using Styx.TreeSharp;
using Styx.WoWInternals.WoWObjects;
using System.Windows.Forms;

namespace Paster.GUI
{
    class CommonSettings : Settings
    {
        public static readonly CommonSettings myPrefs = new CommonSettings();
        
        public CommonSettings() 
            :base(Path.Combine(Utilities.AssemblyDirectory, string.Format(@"Routines/Paster/Priest/{0}/{1}/CommonSettings.xml", StyxWoW.Me.RealmName, StyxWoW.Me.Name)))
        {
        }

        [Setting, DefaultValue(true)]
        [Category("Movement, Facing")]
        [Description("Auto Movement")]
        public bool AutoMovement { get; set; }

        [Setting, DefaultValue(true)]
        [Category("Movement, Facing")]
        [Description("Auto Facing")]
        public bool AutoFacing { get; set; }

        [Setting, DefaultValue(Keys.None)]
        [Category("Hotkeys")]
        [Description("Disable Auto Movement")]
        public Keys KeyDisableMovement { get; set; }

        [Setting, DefaultValue(Keys.None)]
        [Category("Hotkeys")]
        [Description("Disable Auto Facing")]
        public Keys KeyDisableFacing { get; set; }

        [Setting, DefaultValue(true)]
        [Category("Hotkeys")]
        [Description("Print Raid Style Msgs")]
        public bool PrintRaidstyleMsg { get; set; }

        public enum powerwordfortitude
        {
            Manual,
            OnlyOnMyself,
            ForAllPartyMembers
        }

        [Setting, DefaultValue(powerwordfortitude.Manual)]
        [Category("Buffs")]
        [Description("Power Word: Fortitude")]
        public powerwordfortitude fortitude { get; set; }

        [Setting, DefaultValue(50)]
        [Category("Rest Behavior")]
        [Description("Eat Food HP%")]
        public int EatFood { get; set; }

        [Setting, DefaultValue(50)]
        [Category("Rest Behavior")]
        [Description("Drink Mana HP%")]
        public int DrinkMana { get; set; }

        [Setting, DefaultValue(50)]
        [Category("Rest Behavior")]
        [Description("Flash Heal HP%")]
        public int FlashHealOOC { get; set; }

        

    }
}
